#ifndef VERIFIER_AGGLOMERATIVE_H
#define VERIFIER_AGGLOMERATIVE_H

#include "Verifier_Of_Splits.h"
#include "Cluster_Metric.h"
#include "Splitter.h"

class Verifier_Agglomerative : public Verifier_Of_Splits {
public:
    Verifier_Agglomerative(int depth,
                           Cluster_Metric metric,
                           Splitter& splitter);
    bool verify(vector<Cluster*> &children);
    Cluster* gather_elements(Cluster *meta_cluster);
    void subdivide(Cluster *root, vector<Cluster *leaves>&, int depth);

private:
    int max_depth;
    Cluster_Metric cluster_metric;
    Splitter splitter;
};

#endif
